package controlador;

import java.awt.event.ActionEvent;

import sistemaUsuarios.Usuario;
import fachada.FachadaIncidencias;
import fachada.FachadaUsuario;
import fachada.IFachada;
import fixpack.Fixpack;
import interfaz.IVista;
import interfaz.InterfazCliente;
import interfaz.InterfazIncidencias;
import interfaz.nuevaIncidencia;
import interfaz.Registro;

public class ControladorInterfazCliente extends ControladorAbstracto<FachadaUsuario,InterfazCliente> {
	private String idUsuario;
	public ControladorInterfazCliente(IFachada fachada, IVista vista) {
		super(fachada, vista);
		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		String command = e.getActionCommand();
		System.out.println(command);
		
		if(command.equalsIgnoreCase("ModificarDatos")){
			Usuario user = Fixpack.getUsuarioEjecuta();
			
			Registro vModificar = new Registro(false,true,user.getId());
			ControladorRegistro cModificar = new ControladorRegistro(this.fachada,vModificar);
			
			vModificar.setTxtNombre(user.getNombre());
			vModificar.setTxtApellidos(user.getApellido());
			vModificar.setTxtDNI(user.getDni());
			vModificar.setTxtEmail(user.getEmail());
			vModificar.setTxtTelefono(user.getTelefono());
			vModificar.setTxtDireccion(user.getUsuario());
			vModificar.setTxtProvincia(user.getProvincia());
			vModificar.setTxtCodPostal(user.getCodPostal());
			vModificar.setTxtUsuario(user.getUsuario());
			
			vModificar.registerListener(cModificar);
			this.vista.setPanelFuncionalidad(vModificar.getPnlRegistro());
			this.vista.update();
			
		}else if(command.equalsIgnoreCase("EvaluacionServicio")){
			
		}
		else if(command.equalsIgnoreCase("mis incidencias")){
			FachadaIncidencias fachadaIncidencias = new FachadaIncidencias();
			InterfazIncidencias vIncidencias = new InterfazIncidencias();
			ControladorIncidencias cIncidencias= new ControladorIncidencias(fachadaIncidencias,vIncidencias);
			
			vIncidencias.registerListener(cIncidencias);
			cIncidencias.setRoll(0);
			
			vIncidencias.registerListener(cIncidencias);
			vIncidencias.populateTable(fachadaIncidencias.consultarIncidenciasCliente(this.idUsuario), cIncidencias);
			
			this.vista.setPanelFuncionalidad(vIncidencias);
			this.vista.update();
			vIncidencias.update();
		}
		else if(command.equalsIgnoreCase("nueva incidencia")){
			FachadaIncidencias fachadaIncidencias = new FachadaIncidencias();
			nuevaIncidencia vNuevaIncidencia = new nuevaIncidencia();
			ControladorNuevaIncidencia cIncidencias= new ControladorNuevaIncidencia(fachadaIncidencias,vNuevaIncidencia);
			
			vNuevaIncidencia.registerListener(cIncidencias);
			
			this.vista.setPanelFuncionalidad(vNuevaIncidencia);
			this.vista.update();
			vNuevaIncidencia.update();
		}
		
		
	}

	public String getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(String idUsuario) {
		this.idUsuario = idUsuario;
	}

}
